#ifndef __PID_H_
#define __PID_H_

#include <stdbool.h>

typedef struct
{
  float kp;
	float ki;
	float kd;
	
	float target_value;//目标值
	float feedback_value;//返回值
	float err[2];//误差值
	
	float p_out;
	float i_out;
	float d_out;
	float out;

}pid_t;

typedef struct {
    float initial_angle;    // 初始角度
    float target_angle;     // 目标角度
    bool angle_initial_done; // 角度是否已初始化
    bool need_reinit;       // 是否需要重新初始化
}AngleControl_t;

void pid_init_s(pid_t *pid);
void pid_init_a(pid_t *pid);
void pid_calculate(pid_t *pid,float target,float current);

#endif
